/**
 * 商品相关类型定义
 */

/**
 * 商品信息
 */
export interface Product {
  /**
   * 商品ID
   */
  id: string | number
  
  /**
   * 商品名称
   */
  name: string
  
  /**
   * 商品编号
   */
  code: string
  
  /**
   * 商品简介
   */
  description: string
  
  /**
   * 商品详情（富文本）
   */
  detail: string
  
  /**
   * 商品主图
   */
  mainImage: string
  
  /**
   * 商品图片列表
   */
  images: string[]
  
  /**
   * 商品视频
   */
  video?: string
  
  /**
   * 商品分类ID
   */
  categoryId: string | number
  
  /**
   * 商品分类信息
   */
  category?: Category
  
  /**
   * 商品品牌ID
   */
  brandId?: string | number
  
  /**
   * 商品品牌信息
   */
  brand?: Brand
  
  /**
   * 商品价格（单位：分）
   */
  price: number
  
  /**
   * 商品原价（单位：分）
   */
  originalPrice: number
  
  /**
   * 商品库存
   */
  stock: number
  
  /**
   * 商品销量
   */
  sales: number
  
  /**
   * 商品单位
   */
  unit: string
  
  /**
   * 商品重量（克）
   */
  weight?: number
  
  /**
   * 商品体积（立方厘米）
   */
  volume?: number
  
  /**
   * 商品规格列表
   */
  specs: ProductSpec[]
  
  /**
   * 商品SKU列表
   */
  skus: ProductSku[]
  
  /**
   * 商品标签
   */
  tags?: string[]
  
  /**
   * 商品状态：0-下架，1-上架
   */
  status: 0 | 1
  
  /**
   * 是否推荐
   */
  isRecommend: boolean
  
  /**
   * 是否新品
   */
  isNew: boolean
  
  /**
   * 是否热销
   */
  isHot: boolean
  
  /**
   * 创建时间
   */
  createTime: string
  
  /**
   * 更新时间
   */
  updateTime: string
}

/**
 * 商品分类
 */
export interface Category {
  /**
   * 分类ID
   */
  id: string | number
  
  /**
   * 分类名称
   */
  name: string
  
  /**
   * 分类编码
   */
  code: string
  
  /**
   * 分类图标
   */
  icon?: string
  
  /**
   * 分类图片
   */
  image?: string
  
  /**
   * 分类描述
   */
  description?: string
  
  /**
   * 父级分类ID
   */
  parentId?: string | number
  
  /**
   * 层级
   */
  level: number
  
  /**
   * 排序
   */
  sort: number
  
  /**
   * 分类状态：0-禁用，1-启用
   */
  status: 0 | 1
  
  /**
   * 子分类列表
   */
  children?: Category[]
  
  /**
   * 创建时间
   */
  createTime: string
  
  /**
   * 更新时间
   */
  updateTime: string
}

/**
 * 商品品牌
 */
export interface Brand {
  /**
   * 品牌ID
   */
  id: string | number
  
  /**
   * 品牌名称
   */
  name: string
  
  /**
   * 品牌英文名称
   */
  englishName?: string
  
  /**
   * 品牌logo
   */
  logo: string
  
  /**
   * 品牌描述
   */
  description?: string
  
  /**
   * 品牌官网
   */
  website?: string
  
  /**
   * 排序
   */
  sort: number
  
  /**
   * 品牌状态：0-禁用，1-启用
   */
  status: 0 | 1
  
  /**
   * 创建时间
   */
  createTime: string
  
  /**
   * 更新时间
   */
  updateTime: string
}

/**
 * 商品规格
 */
export interface ProductSpec {
  /**
   * 规格ID
   */
  id: string | number
  
  /**
   * 规格名称
   */
  name: string
  
  /**
   * 规格值列表
   */
  values: ProductSpecValue[]
}

/**
 * 商品规格值
 */
export interface ProductSpecValue {
  /**
   * 规格值ID
   */
  id: string | number
  
  /**
   * 规格值名称
   */
  name: string
  
  /**
   * 规格值图片
   */
  image?: string
}

/**
 * 商品SKU
 */
export interface ProductSku {
  /**
   * SKU ID
   */
  id: string | number
  
  /**
   * 商品ID
   */
  productId: string | number
  
  /**
   * SKU编号
   */
  code: string
  
  /**
   * SKU名称
   */
  name: string
  
  /**
   * SKU图片
   */
  image?: string
  
  /**
   * SKU规格值列表
   */
  specValues: ProductSpecValue[]
  
  /**
   * SKU价格（单位：分）
   */
  price: number
  
  /**
   * SKU原价（单位：分）
   */
  originalPrice: number
  
  /**
   * SKU库存
   */
  stock: number
  
  /**
   * SKU销量
   */
  sales: number
  
  /**
   * SKU重量（克）
   */
  weight?: number
  
  /**
   * SKU体积（立方厘米）
   */
  volume?: number
  
  /**
   * SKU状态：0-禁用，1-启用
   */
  status: 0 | 1
}

/**
 * 商品评价
 */
export interface ProductReview {
  /**
   * 评价ID
   */
  id: string | number
  
  /**
   * 商品ID
   */
  productId: string | number
  
  /**
   * 商品SKU ID
   */
  skuId: string | number
  
  /**
   * 订单ID
   */
  orderId: string | number
  
  /**
   * 用户ID
   */
  userId: string | number
  
  /**
   * 用户昵称
   */
  nickname: string
  
  /**
   * 用户头像
   */
  avatar: string
  
  /**
   * 评分（1-5）
   */
  rating: 1 | 2 | 3 | 4 | 5
  
  /**
   * 评价内容
   */
  content: string
  
  /**
   * 评价图片
   */
  images?: string[]
  
  /**
   * 评价视频
   */
  video?: string
  
  /**
   * 商家回复
   */
  reply?: string
  
  /**
   * 是否匿名
   */
  isAnonymous: boolean
  
  /**
   * 点赞数
   */
  likes: number
  
  /**
   * 创建时间
   */
  createTime: string
  
  /**
   * 更新时间
   */
  updateTime: string
}